package com.jk.service.login;

import com.jk.constants.LoginConstants;
import com.jk.dao.login.LoginMapper;
import com.jk.pojo.PayBank;
import com.jk.pojo.PayUser;
import com.jk.util.Utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;

/**
 * &lt;pre&gt;项目名称：jk-pay
 * 类名称：
 * 创建人：李金春
 * 手机号：18839726119
 * 创建时间：
 * 修改人：李金春
 * 修改时间：2018-1-2 14:01:07
 * 修改备注：修改用户登录业务    --李金春--2018-1-2 14:01:33
 */
@Service("loginServiceImpl")
public class LoginServiceImpl implements LoginService{
    @Autowired
    private LoginMapper loginMapper;

    /**用户注册，已使用Md5+盐+散列进行加密*/
    @Override
    public void addUser(PayUser user, String bankNum) {
        //判断邮箱是否为空，为空则添加""
        if(user.getUseremail() == null || user.getUseremail() == ""){
            user.setUseremail("");
        }
        //
        //会员默认ID，唯一不可重复；
        user.setUserid(Utils.getUUID());
        //会员密码，已使用md5+盐+散列加密；
        user.setUserpwd(Utils.getMd5Pwd(user.getUserpwd()));
        //会员是否实名认证默认为0 = 没有；
        user.setCreatetime(new Date());
        //会员是否实名认证默认为0 = 没有；
        user.setUserapprove(LoginConstants.REGISTER_SET_INIT_INTERGER);
        //会员余额默认为0；
        user.setHavebalance(LoginConstants.REGISTER_SET_INIT_DOUBLE);
        //会员余额默认为0；
        user.setUserbalance(LoginConstants.REGISTER_SET_INIT_DOUBLE);
        //会员权限是否为审核人员默认为0 = 不是；
        user.setPower(LoginConstants.REGISTER_SET_INIT_INTERGER);
        //会员保障默认为0 = 无；
        user.setMamberprotect(LoginConstants.REGISTER_SET_INIT_INTERGER);
        //初始积分默认为0
        user.setUserintegral(LoginConstants.REGISTER_SET_INIT_INTERGER);
        loginMapper.addUser(user);
        PayBank payBank = loginMapper.selBankInfoByBankNum(bankNum);
        payBank.setUserid(user.getUserid());
        loginMapper.updateBankUserInfo(payBank);
    }

    /**用户登录
     * @param user
     * @return Payuser
     * */
    @Override
    public PayUser userLogin(PayUser user) {
        //判断是否为邮箱登录
        int flag = user.getUseraccount().lastIndexOf(".");
        if(flag != -1){
            user.setUseremail(user.getUseraccount());
            user.setUseraccount(null);
        }
        PayUser payUser = new PayUser();
        //邮箱或者手机号登录
        if(user.getUseraccount() != null && !"".equals(user.getUseraccount())){
            payUser = loginMapper.userLoginByUseraccount(user.getUseraccount());
        }else if(user.getUseremail() != null && !"".equals(user.getUseremail())){
            payUser = loginMapper.userLoginByUseremail(user.getUseremail());
        }
        //修改上次登录时间
        if(payUser != null){
            if(payUser.getUseraccount() != null && !"".equals(payUser.getUseraccount())){
                payUser.setUplogintime(new Date());
                loginMapper.updateUserLoginTimeByUseraccount(payUser);
            }else if(payUser.getUseremail() != null && !"".equals(payUser.getUseremail())){
                payUser.setUplogintime(new Date());
                loginMapper.updateUserLoginTimeByUseremail(payUser);
            }
        }
        return payUser;
    }
}
